package 程序员面试金典;

import java.util.Map;

public class 生存人数 {
//自己写的
    public int maxAliveYear(int[] birth, int[] death) {
        //统计每年的生存人数
        int[] people = new int[10000];
        for (int i = 0; i < birth.length; i++) {
            for (int j = birth[i]; j <= death[i]; j++) {
                   people[j]++;
            }
        }
        int max=0,year=0;
        for (int i = 0; i < people.length; i++) {
            if (max<people[i]){
                max=people[i];
                year=i;
            }
        }
        return year;
    }
    //别人写的 暴力解法
//    public int maxAliveYear(int[] birth, int[] death) {
//        Map<Integer, Integer> map = new HashMap<>();
//        int maxCount = 0;
//        int maxYear = 0;
//        for (int i = 0; i < birth.length; i++) {
//            for (int j = birth[i]; j <= death[i]; j++) {
//                map.put(j, map.getOrDefault(j, 0) + 1);
//                if (maxCount < map.get(j)) {
//                    maxCount = map.get(j);
//                    maxYear = j;
//                }
//                if (maxCount == map.get(j)) {
//                    maxYear = Math.min(j, maxYear);
//                }
//            }
//        }
//        return maxYear;
//    }
}
